package org.ueg.pdv.view;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import org.ueg.pdv.business.BCliente;
import org.ueg.pdv.model.Cliente;

@ManagedBean
@SessionScoped
public class ClienteBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@ManagedProperty(value="#{bCliente}")
	private BCliente bCliente;
	
	private Cliente cliente;
	private List<Cliente> clientes;
	
	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public List<Cliente> getClientes() {
		return clientes;
	}

	public void setClientes(List<Cliente> clientes) {
		this.clientes = clientes;
	}

	public BCliente getbCliente() {
		return bCliente;
	}

	public void setbCliente(BCliente bCliente) {
		this.bCliente = bCliente;
	}
	
	@PostConstruct
	public void doInit(){
		cliente = new Cliente();
		try {
			clientes = bCliente.listagem();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public void salva(){
		try {
			bCliente.salva(cliente);
			clientes = bCliente.listagem();
			cliente = new Cliente();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			addMessage("messages", "", e.getMessage(), FacesMessage.SEVERITY_ERROR);
		}
	}
	
	public void altera(Cliente cliente){
		this.cliente = cliente;
	}
	
	public void exclui(Cliente cliente){
		try {
			bCliente.deleta(cliente);
			clientes.remove(cliente);
			if (cliente == this.cliente)
				this.cliente = new Cliente();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			addMessage("messages", "", e.getMessage(), FacesMessage.SEVERITY_ERROR);
		}
	}
	
	public void addMessage(String arg0, String summary, String detail, FacesMessage.Severity severity) {
		FacesMessage facesMessage = new FacesMessage(severity, summary, detail);
		FacesContext.getCurrentInstance().addMessage(arg0, facesMessage);
    }


}